package br.gov.ms.tce.modelo.bean;

import javax.persistence.Column;
import javax.persistence.Embeddable;


/**
*  @class EmailId
 * @author Anderson Paulino
 * @date 27/05/2011
 *
 */
@Embeddable
public class EmailId implements java.io.Serializable {

	/**
	 * serialVersionUID
	 */
	private static final long serialVersionUID = 719388193803611732L;
	private int codPessoa;
	private int codTipoEmail;
	private String descricao;

	public EmailId() {
	}

	public EmailId(int codPessoa, int codTipoEmail) {
		this.codPessoa = codPessoa;
		this.codTipoEmail = codTipoEmail;
	}

	@Column(name = "cod_pessoa", nullable = false)
	public int getCodPessoa() {
		return this.codPessoa;
	}

	public void setCodPessoa(int codPessoa) {
		this.codPessoa = codPessoa;
	}

	@Column(name = "cod_tipo_email", nullable = false)
	public int getCodTipoEmail() {
		return this.codTipoEmail;
	}

	public void setCodTipoEmail(int codTipoEmail) {
		this.codTipoEmail = codTipoEmail;
	}
	

	/**
	 * @return Obtém o valor da propriedade descricao
	 */
	@Column(name = "descricao", nullable = false)
	public String getDescricao() {
		return descricao;
	}

	/**
	 * @param descricao configura a propriedade descricao
	 */
	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}

	public boolean equals(Object other) {
		if ((this == other))
			return true;
		if ((other == null))
			return false;
		if (!(other instanceof EmailId))
			return false;
		EmailId castOther = (EmailId) other;

		return (this.getCodPessoa() == castOther.getCodPessoa())
				&& (this.getCodTipoEmail() == castOther.getCodTipoEmail())
				&& (this.getDescricao().equals(castOther.getDescricao()));
	}

	public int hashCode() {
		int result = 17;

		result = 37 * result + this.getCodPessoa();
		result = 37 * result + this.getCodTipoEmail();
		result = 37 * result + this.getDescricao().length();
		return result;
	}

}
